EKS 內最上層的 logs 首要就是 control plane logging,
API server (api)
跟 API 相關設定
審計日誌 (audit)
影響集群的各個用戶,管理員或系統組件的記錄
authenticator
Amazon EKS 特有的。這些日誌代表 Amazon EKS 用於使用 IAM 憑證進行 Kubernetes 基於角色的訪問控制(RBAC)身份驗證的控制平面組件
controllerManager
顧名思義,跟 controller 有關的管理
scheduler
管理何時以及在集群中的哪個地方運行 Pod
我們先在 terraform aws_eks_cluster 允許哪些 type 可以被抓住,抓到的 logs 會直接傳往 CloudWatch Log Group
resource "aws_eks_cluster" "main" {
enabled_cluster_log_types = var.enabled_cluster_log_types
}
enabled_cluster_log_types = ["api", "authenticator", "controllerManager"]
resource "aws_cloudwatch_log_group" "main" {
name = "/aws/eks/${var.cluster_name}/cluster"
retention_in_days = var.log_retention_days
tags = var.tags
}
另外還有一層是 application service 的 api logs,這塊我們用的是 fluent bit,並使用 helm 部署
resource "helm_release" "aws_cloudwatch_logs_for_fluent_bit" {
name = "aws-cloudwatch-logs"
repository = "https://aws.github.io/eks-charts"
chart = "aws-for-fluent-bit"
version = "0.1.7"
namespace = "kube-system"
}